# ❤️ I3wm

![screenshot](/screenshots/1.png)
![screenshot](/screenshots/2.png)
![screenshot](/screenshots/3.png)
![screenshot](/screenshots/4.png)

Данный репозиторий представляет собой мою настройку рабочего окружения под управлением
**i3wm**.

Devuan + i3 + polybar = ❤️‍🔥

## Fonts 🔎

Обязательные шрифты:

- [Symbols Nerd Font Mono](https://www.nerdfonts.com/) для красивых иконок
- [cryptocoins](https://cryptofonts.com/) нужен для модуля polybar **crypto**

## ⚡ I3wm

Установлен обычный i3-gaps из репозиториев
Devuan `sudo apt install i3-wm` + [picom](https://github.com/yshui/picom)
с данной [конфигурацией](/config/picom.conf)

### i3lock-fancy

Блокируем экран при помощи bash-скрипта [i3lock-fancy](https://github.com/meskarune/i3lock-fancy),
скрипт делает скриншот рабочего стола,
размывает фон, и добавляет значок блокировки с текстом.

### dunst

Демон уведомлений(не настроен под pywal), конфигурация -> [тутъ](/config/dunstrc)

### kill app + dunst

Для более красивого закрытия окон с уведомлением и текстом закрытого окна,
заменим строчку i3 конфигурации на вот такую:

```text
bindsym $mod+Shift+q exec kill $(xdotool getwindowfocus getwindowpid)
&& $dunst "Kill process: "$(xdotool getwindowfocus getwindowname)
```

Вот такая длинная команда выведет уведомление с именем закрытого окна 😎

![screenshot](/screenshots/dunst_kill_terminal.png)

Вместо dunst вы можете выбрать любой другой демон уведомлений,
главное немного подправить команду.

### ls_extended

Альтернатива команде ls, но с множеством красивых
цветов и иконок -> [github](https://github.com/Electrux/ls_extended)

### please

Минималистичная страница новой вкладки с приветствием,
датой и временем, цитатам и списком
личных дел -> [github](https://github.com/NayamAmarshe/please)

### LazyVim

[LazyVim](https://www.lazyvim.org/) как основную IDE :)

### PyWalFox

Расширение, которое динамически обновляет тему Firefox
в соответствии с палитрой цветов рабочего стола,
а также умеет раскрашивать
в эти цвета некоторые сайты -> [github](https://github.com/frewacom/pywalfox)

### Wal-Telegram

Генерирует темы для Telegram на основе
цветов pywal -> [github](https://github.com/guillaumeboehm/wal-telegram)

### [ozozFetch](https://github.com/mmsaeed509/neofetch-themes/blob/main/normal/ozozfetch)

Улучшаем **neofetch** -> [github](https://github.com/Chick2D/neofetch-themes)

### tartarus-startpage

Функциональная стартовая страница
для вашего браузера -> [github](https://github.com/AllJavi/tartarus-startpage)

## 📌 Polybar

Мой рабочий стол основана на [polybar-theme](https://github.com/adi1090x/polybar-themes#hack),
тема **hack**.

### Верхняя polybar панель

- [launcher](/polybar/hack/user_modules.ini)
  Обычный лаунчер rofi
  взятый с данного [github](https://github.com/adi1090x/rofi/tree/master/files/launchers/type-1).
  Все использованные [rofi](<Readme#📎 Rofi конфигурации>)
- [battery](/polybar/hack/modules.ini)
  Красивый вывод статуса батареи ноутбука, при зарядке идёт анимация :)
- [display](/polybar/hack/user_modules.ini)
  Используя **xrandr** и интересную bash команду, выводим яркость экрана.

  ```bash
  echo "$(xrandr --verbose | grep -i brightness | awk '{print $2}') * 100 / 1" | bc
  ```

  В i3 конфигурации, при нажатии определённых клавиш,
  можно уменьшить или увеличить яркость используя данные [bash-скрипты](/polybar/my-scripts/display-settings).

- [workspace](/polybar/hack/modules.ini)
  Распределённые рабочие столы с иконками.
- [color-switch](/polybar/hack/scripts/color-switch.sh)
  Принудительно изменяем цвет polybar.
- [xkeyboard](/polybar/hack/modules.ini)
  Выводим раскладку клавиатуры.
- [wlan](/polybar/hack/user_modules.ini)
  Выводим **essid** и скорость **donwspeed** и **upspeed**.
- [pulseaudio](/polybar/hack/modules.ini)
  Громкость динамиков.
- [date](/polybar/hack/modules.ini)
  Выводим время, при нажатии правой кнопкой мыши, выводится (день, месяц, год).
- [sysmenu](/polybar/hack/user_modules.ini)
  Powermenu rofi взятый
  с данного [github](https://github.com/adi1090x/rofi/tree/master/files/powermenu/type-4/).
  Все использованные [rofi](<Readme#📎 Rofi конфигурации>)

### Нижняя polybar панель

- [trash](/polybar/my-scripts/trash.sh)
  Считает кол-во файлов в директориях
  `~/.local/share/Trash/files` и `~/.trash_rmt`.
  Работает с утилитой [rmt](https://github.com/AmineZouitine/rmt.rs).
- [dunst](/polybar/my-scripts/dunst)
  Выводит статус уведомлений -> [bash](/polybar/my-scripts/dunst/check.sh)
  При нажатии включает или отключает уведомления -> [bash](/polybar/my-scripts/dunst/run_exit.sh)
- [Bluetooth](https://github.com/ClydeDroid/rofi-bluetooth/)
  Выводит статус подключения **bluetooth**,
  можно запускать с **[rofi](<Readme#📎 Rofi конфигурации>)**.
- [player-cmus](/polybar/my-scripts/player-cmus)
  Выводит статус(статус воспроизведений,
  имя автор, имя трека, текущее время трека, сколько всего
  времени песни и т.д...) для музыкального плеера **[cmus](https://github.com/cmus/cmus)**.
- [cava](https://github.com/karlstav/cava)
  [Данный скрипт](/polybar/my-scripts/info-cava.py) аудио визуализатор
  прямо в polybar -> [github](https://github.com/polybar/polybar-scripts/)
- [cpu](/polybar/hack/module.ini)
  Показывает нагруженность CPU при помощи встроенных скриптов polybar, ничего интересного.
- [swap](/polybar/my-scripts/swap.sh)
  Выводит загруженность swap через команду `free -m`.
- [memory](/polybar/hack/modules.ini)
  Выводит кол-во используемой памяти используя встроенные скрипты polybar-a.
- [filesystem](/polybar/hack/modules.ini)
  Выводит кол-во свободного места на диске.
- [temperature](/polybar/hack/user_modules.ini)
  Выводит температуру процессора используя
  утилиту [sensors](https://github.com/lm-sensors/lm-sensors).
- [apt-update](/polybar/my-scripts/info-apt.py)
  Выводим кол-во доступных пакетов для обновления.
- [weather](/polybar/my-scripts/i3-simple-weather/weather.py)
  [i3-simple-weather](https://github.com/bru74lw1z4rd/i3-simple-weather) выводит
  иконку погоды и кол-во градусов
  используя [API OpenWeather](https://openweathermap.org).
- [crypto](https://github.com/willHol/polybar-crypto)
  Вывожу курс Bitcoin и Monero.
- [usd](/polybar/my-scripts/polybar-crypto/usd-return.sh)
  Вывожу курс доллара.
- [eur](/polybar/my-scripts/polybar-crypto/eur-return.sh)
  Вывожу курс евро.

## 📎 Rofi конфигурации

- **mod+b**: rofi bluetooth -> [github](https://github.com/ClydeDroid/rofi-bluetooth/)
- **mod+d**: rofi search -> [github](https://github.com/adi1090x/rofi/tree/master/files/launchers/type-1)
  style-9
- **mod+F1**: rofi powermenu -> [github](https://github.com/adi1090x/rofi/tree/master/files/powermenu/type-4/)
  style-1
- **mod+w**: rofi rofi-iwd-wifi-menu -> [github](https://github.com/defname/rofi-iwd-wifi-menu)

## 📑 End

Надеюсь что-то вам пригодилось и вы создадите красивый,
идеальный и удобный рабочий стол ✨✨✨
